/*
 * InterpreteComandosServer.h
 *
 *  Created on: 24/06/2014
 *      Author: loreyalan
 */

#ifndef INTERPRETECOMANDOSSERVER_H_
#define INTERPRETECOMANDOSSERVER_H_

#include "../IncludesServidor.h"
#include "../defines.h"
#include "map"
#include "../ComandosServidor/ComandoServidor.h"

using namespace std;

class InterpreteComandosServer {
private:
	//Instancia del interprete.
    static InterpreteComandosServer *instance;
    //Constructor privado por ser un singleton.
	InterpreteComandosServer();
	//Mapa con los comandos por accion.
	map<int, ComandoServidor *> mapaComandos;

public:
	/*Para obtener la instancia si la hay, sino generarla. */
	static InterpreteComandosServer *getInstance();
	/*Devuelve el comando que atiende la accion solicitada en la estructura t_action*/
	ComandoServidor *getComando(t_accion *action);
	/*Destructor*/
	virtual ~InterpreteComandosServer();
};

#endif /* INTERPRETECOMANDOSSERVER_H_ */
